package top.cptr.so.tripartiteqqlogin.paramter;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import top.cptr.so.tripartiteqqlogin.nanotation.ParamFiled;

/**
 * 获取accessToken请求对象
 */
@Data
public class TokenRequestParam {

    // 	授权类型，在本步骤中，此值为“authorization_code”。(必须)
    @ParamFiled(name = "grant_type")
    private String grantType ="authorization_code";
    // 申请QQ登录成功后，分配给网站的appid。 (必须)
    @ParamFiled(name = "client_id")
    private String clientId;
    // 申请QQ登录成功后，分配给网站的appkey。 (必须)
    @ParamFiled(name = "client_secret")
    private String clientSecret;
    // 上一步返回的authorization code。 (必须)
    private String code;
    // 与上面一步中传入的redirect_uri保持一致。 (必须)
    @ParamFiled(name = "redirect_uri")
    private String redirectUri;
    // 因历史原因，默认是x-www-form-urlencoded格式，如果填写json，则返回json格式 (可选)
    private String fmt="json";
    private String state;


    /**
     * 获取accessToken请求对象
     */
    @Data
    public static class  TokenResponse{
        // 授权令牌，Access_Token
        @JSONField(name = "access_token")
        private String accessToken;
        // 该access token的有效期，单位为秒。
        @JSONField(name = "expires_in")
        private String expiresIn;
        // 在授权自动续期步骤中，获取新的Access_Token时需要提供的参数。
        @JSONField(name = "refresh_token")
        private String refreshToken;
    }
}
